"""
1.查找测试用例生成测试套件
    #获取测试用例路径
    1.1实例化TestLoader类
    1.2调用discover方法生成测试条件
    1.3返回测试套件


2.清理报告
    #2.1全部清理
    os.listdir()获取目录下全部文件得到一个列表
    循环删除每个文件
"""

import os
import time
import unittest
from common.log import logger
from HTMLTestRunner  import HTMLTestReportCN




def create_suite():
    case_dir = os.path.dirname(__file__) + r"/testcase"

    loader = unittest.TestLoader()

    suite = loader.discover(start_dir=case_dir,pattern="test*.py")

    logger.debug(suite)
    return suite

# 2.清理报告
def auto_clear():
    #2.1全部清理
    #os.listdir()获取目录下全部文件得到一个列表
    dir = os.path.dirname(__file__) + r"/testReport/"
    file_list = os.listdir(dir)
    file_list.sort()
    #循环删除每个文件
    for i in file_list[:-3]:
        os.remove(dir + i)


if __name__ == '__main__':
    #生成测试套件
    suite = create_suite()
    #获取当前时间
    cru_time = time.strftime("%Y_%m_%d_$H_%M_%S", time.localtime())  #月/日字母要小写
    #运行测试套件生成测试报告
    #创建报告文件及路径
    report = os.path.dirname(__file__) + r"/testReport/"+cru_time+"report.html"
    #
    with open(report,"wb") as fp:
        #
         runner = HTMLTestReportCN(stream=fp,title="接口自动化测试报告",description="接口测试结果",verbosity=2)
    # 返回结果
         runner.run(suite)

    auto_clear()




